﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://tempuri.org/" elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://collab.com/2010/10" />
  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:import namespace="http://schemas.datacontract.org/2004/07/CollabServiceLibrary.Entities" />
  <xs:element name="RegisterUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="email" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RegisterUserResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="AuthenticateUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="AuthenticateUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="AuthenticateUserResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q1="http://collab.com/2010/10" minOccurs="0" name="GetUserResult" nillable="true" type="q1:User" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserWithID">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="userId" type="q2:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserWithIDResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q3="http://collab.com/2010/10" minOccurs="0" name="GetUserWithIDResult" nillable="true" type="q3:User" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="EditUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q4="http://collab.com/2010/10" minOccurs="0" name="user" nillable="true" type="q4:User" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="EditUserResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="SearchUsers">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="query" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SearchUsersResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q5="http://schemas.datacontract.org/2004/07/CollabServiceLibrary.Entities" minOccurs="0" name="SearchUsersResult" nillable="true" type="q5:ArrayOfContact" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="AddUserContact">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q6="http://collab.com/2010/10" minOccurs="0" name="requestingUser" nillable="true" type="q6:User" />
        <xs:element xmlns:q7="http://schemas.datacontract.org/2004/07/CollabServiceLibrary.Entities" minOccurs="0" name="acceptingUser" nillable="true" type="q7:Contact" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="AddUserContactResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q8="http://schemas.datacontract.org/2004/07/CollabServiceLibrary.Entities" minOccurs="0" name="AddUserContactResult" nillable="true" type="q8:Contact" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeleteContact">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q9="http://schemas.datacontract.org/2004/07/CollabServiceLibrary.Entities" minOccurs="0" name="contact" nillable="true" type="q9:Contact" />
        <xs:element xmlns:q10="http://collab.com/2010/10" minOccurs="0" name="user" nillable="true" type="q10:User" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeleteContactResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q11="http://schemas.datacontract.org/2004/07/CollabServiceLibrary.Entities" minOccurs="0" name="DeleteContactResult" nillable="true" type="q11:Contact" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetGroup">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q12="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="groupId" type="q12:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetGroupResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q13="http://collab.com/2010/10" minOccurs="0" name="GetGroupResult" nillable="true" type="q13:Group" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateGroup">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="groupName" nillable="true" type="xs:string" />
        <xs:element xmlns:q14="http://collab.com/2010/10" minOccurs="0" name="creator" nillable="true" type="q14:User" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateGroupResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="EditGroup">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q15="http://collab.com/2010/10" minOccurs="0" name="changes" nillable="true" type="q15:Group" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="EditGroupResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q16="http://collab.com/2010/10" minOccurs="0" name="EditGroupResult" nillable="true" type="q16:Group" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateGroupInvitation">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q17="http://collab.com/2010/10" minOccurs="0" name="invite" nillable="true" type="q17:GroupInvite" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateGroupInvitationResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q18="http://collab.com/2010/10" minOccurs="0" name="CreateGroupInvitationResult" nillable="true" type="q18:GroupInvite" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="AcceptGroupInvitation">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q19="http://collab.com/2010/10" minOccurs="0" name="groupInvite" nillable="true" type="q19:GroupInvite" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="AcceptGroupInvitationResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="DeclineGroupInvitation">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q20="http://collab.com/2010/10" minOccurs="0" name="groupInvite" nillable="true" type="q20:GroupInvite" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeclineGroupInvitationResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="SetStatus">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q21="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="userId" type="q21:guid" />
        <xs:element minOccurs="0" name="ip" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="port" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetStatusResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetOnlineStatuses">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q22="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="userId" type="q22:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetOnlineStatusesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q23="http://collab.com/2010/10" minOccurs="0" name="GetOnlineStatusesResult" nillable="true" type="q23:ArrayOfOnlineStatus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetRecentOnlineStatus">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q24="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="userId" type="q24:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetRecentOnlineStatusResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q25="http://collab.com/2010/10" minOccurs="0" name="GetRecentOnlineStatusResult" nillable="true" type="q25:OnlineStatus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetSessionInvites">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q26="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="userId" type="q26:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetSessionInvitesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q27="http://schemas.datacontract.org/2004/07/CollabServiceLibrary.Entities" minOccurs="0" name="GetSessionInvitesResult" nillable="true" type="q27:ArrayOfSessionInvite" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateSessionInvite">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q28="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="invitingUserId" type="q28:guid" />
        <xs:element xmlns:q29="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="invitedUserId" type="q29:guid" />
        <xs:element minOccurs="0" name="message" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="invitingUserIP" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateSessionInviteResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
</xs:schema>